Welcome Contributors
Thank you for your interest in contributing to Iquea Commerce! This guide will help you get started with the contribution process, from forking the repository to submitting your first pull request.Prerequisites
Before you begin, ensure you have the following installed:- Java Development Kit (JDK) 21 - Download JDK 21
- Node.js 18.0 or higher - Download Node.js
- MySQL Server 8.0+ - Download MySQL
- Git - Download Git
Getting Started
Fork the Repository
Visit the Iquea Commerce repository and click the Fork button in the top-right corner to create your own copy.
Add Upstream Remote
Add the original repository as an upstream remote to keep your fork synchronized:
Set Up the Database
Create the MySQL database:Configure database credentials using environment variables:
Set Up the Backend
Navigate to the backend directory and start the server:The backend will be available at
http://localhost:8080On first startup, the backend automatically creates database tables and inserts initial data from
src/main/resources/data.sql.Development Workflow
Creating a New Branch
Always create a new branch for your changes. Use descriptive branch names following these conventions:Branch Naming Conventions
feature/- New features or enhancementsbugfix/- Bug fixeshotfix/- Urgent production fixesdocs/- Documentation changesrefactor/- Code refactoringtest/- Adding or updating testschore/- Maintenance tasks
Making Changes
Make Your Changes
Write clean, well-documented code following our code style guidelines.
Test Your Changes
Submitting a Pull Request
Create the Pull Request
Go to the original repository on GitHub and click New Pull Request. Select your fork and branch, then fill in the PR template:Title: Brief description of changesDescription:
- What changes were made?
- Why were they made?
- What testing was performed?
- Any breaking changes or migrations needed?
Pull Request Checklist
Before submitting your PR, ensure:- Code follows the project’s style guidelines
- All tests pass (
./mvnw testandnpm test) - New features include appropriate tests
- Documentation is updated if needed
- Commit messages are clear and descriptive
- No merge conflicts with main branch
- PR description clearly explains the changes
Code Review Process
- Automated Checks: CI/CD pipeline runs tests and linters
- Peer Review: At least one maintainer reviews the code
- Feedback: Reviewers may request changes or improvements
- Approval: Once approved, the PR is ready to merge
- Merge: Maintainers merge using squash or merge commits
Types of Contributions
Bug Reports
Found a bug? Create an issue with:- Clear title and description
- Steps to reproduce
- Expected vs actual behavior
- Environment details (OS, Java version, browser)
- Screenshots if applicable
Feature Requests
Have an idea? Open a discussion with:- Use case and motivation
- Proposed solution
- Alternatives considered
- Potential impacts
Documentation
Improve docs by:- Fixing typos or unclear explanations
- Adding code examples
- Translating to other languages
- Creating tutorials or guides
Code of Conduct
Our Standards
We are committed to providing a welcoming and inclusive environment. Expected behaviors:- Be Respectful: Value diverse perspectives and experiences
- Be Collaborative: Help others learn and grow
- Be Professional: Keep discussions focused and constructive
- Be Patient: Remember that everyone started as a beginner
Unacceptable Behavior
- Harassment, discrimination, or personal attacks
- Trolling, insulting comments, or political arguments
- Publishing others’ private information
- Any conduct that creates an unsafe environment
Reporting Issues
If you experience or witness unacceptable behavior, report it to the project maintainers at conduct@iquea.com.Getting Help
- Documentation: Start with our developer guides
- Discussions: Ask questions in GitHub Discussions
- Discord: Join our community Discord for real-time help
- Email: Contact maintainers at dev@iquea.com
Recognition
Contributors are recognized in:- Project README contributors section
- Release notes for significant contributions
- Annual contributor spotlight posts